function [distance,sim_moments] = steady_state_simulation_partial_spillover_search(parameters,targets)
place = {'US', 'OECD'};
set_parameters
initialize_vectors

year = 1;

% MAIN SIMULATION LOOP
while year<=max_year;
    
    year_index = ['y' num2str(year)];
    if year > 1
        lag_year_index=['y' num2str(year-1)];
    end
    
    % SIMULATE INNOVATION PROCESS AND REASSIGN VARIETIES TO PRODUCERS
    innovation_and_assignment
        
    % ITERATE TO DETERMINE EQUILIBRIUM WAGES AND TRADE FLOWS
    [wage.OECD,omega,exports.US.(year_index),exports.OECD.(year_index),produced.US.(year_index),produced.OECD.(year_index),...
        nontraded.US.(year_index),nontraded.OECD.(year_index),prices.US.(year_index),prices.OECD.(year_index),output.US.(year_index),output.OECD.(year_index),...
        markups.US.(year_index),markups.OECD.(year_index),mu_bar.US(end+1),mu_bar.OECD(end+1),...
        nominal_GDP.US.(year_index),nominal_GDP.OECD.(year_index),export_share.US(end+1),export_share.OECD(end+1),revenue.US.(year_index),revenue.OECD.(year_index),x,m,...
        qualities_vec_consumed.US,qualities_vec_consumed.OECD,labor_share.US(end+1),labor_share.OECD(end+1),wage_level.US,wage_level.OECD,...
        P_bar.US.(year_index),P_bar.OECD.(year_index),total_income.US.(year_index),total_income.OECD.(year_index),...
        real_consumption.US.(year_index),real_consumption.OECD.(year_index),real_product_wage.US,real_product_wage.OECD] = ...
        find_equilibrium(wage.OECD,qualities_vec.US,qualities_vec.OECD,domestic_competitor_qual_vec.US,domestic_competitor_qual_vec.OECD,...
        import_tariff.US,import_tariff.OECD,l.US,l.OECD,n_varieties,export_share.US(end),export_share.OECD(end),mu_bar.US(end),mu_bar.OECD(end));
   
    if year > max_year-100
        calculate_trade_elasticity_real
        trade_elasticity_avg_vec = [trade_elasticity_avg_vec; (trade_elasticity_US+trade_elasticity_OECD)/2];
        trade_elasticity_US_vec = [trade_elasticity_US_vec;  trade_elasticity_US];
    end
    
    % RUN FILE TO CALCULATE MOMENTS
    track_moments_within_loop    
       
    % UPDATE NEXT YEAR'S VARIETY OWNERSHIP BEFORE THE INNOVATION FOR THAT
    % YEAR BEGINS
    nxt_yr_index = ['y' num2str(year+1)];
    for cc=1:length(place)
    varown_vec.(place{cc}).(nxt_yr_index) = varown_vec.(place{cc}).(year_index);
    end
        
    l.US = population_growth*l.US;
    l.OECD = population_growth*l.OECD;
    
    year = year+1;
    
end

calculate_moments_after_loop_search

trade_elasticity_avg = mean(trade_elasticity_avg_vec);
trade_elasticity_US_avg = mean(trade_elasticity_US_vec);

% CHOOSE A FEW KEY MOMENTS TO OUTPUT FROM THE FUNCTION
sim_moments = [100*(TFP_growth.US-1); 100*(TFP_growth.OECD-1); relative_product_wage_avg-1; ...
        share_jobs_dom_entrants5yrs_avg; agg_export_revenue_share_avg.US; ...
        var_firm_TFPR_avg.US; trade_elasticity_US_avg];

% OBJECTIVE FUNCTION TO MINIMIZE IN THE PARAMETER SEARCH
distance = sum(((targets-sim_moments)./targets).^2);

end